/**需求1：写一段正则表达式验证密码强度
 * 1.必须6-12位
 * 2.必须包含数字，小写字母，大写字母，特字符($@_,.之一)
*/

// ?= 表示前瞻不消耗字符 
// `.*[a-z]` 表示[a-z]前面可能有 任意字符(.) 有0或多位(*)
const reg1 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@_,.])[a-zA-Z\d$@_,.]{6,12}$/

// 测试
reg1.test('1234.Abc') // true
reg1.test('1234.abc') // false




/** 需求2： 至少包含其中2种字符
 * 密码长度 6-12 位，
 * 由数字、小写字符和大写字母组成，但必须至少包括其中 2 种字符
*/

// 分析可能
// 数字 + 小写字母
// 数字 + 大写字母
// 小写字母 + 大写字母
// 数字 + 小写字母 + 大写字母
const reg2 = /((?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-z])|(?=.*\d)(?=.*[A-Z]))^[a-zA-Z\d]{6,12}$/
// 测试
reg2.test('1234122') // false
reg2.test('1234abc') // true
